Skip to main content

BatchScheduler

カスタムプログラム用実行機能#

名前の通りバッチをスケジューリングできる機能です。

Class BatchScheduler#

app:init をすると、batch.phpが生成されます。 このような記載があります。

$batchScheduler = new BatchScheduler();
// $batchScheduler->addJob((new HogeBatch())->everyMinute());
$batchScheduler->runJobs();

BatchSchedulerは基本的なベースになるクラスです。 このクラスにJobをAddしましょう。

バッチジョブの作成#

BatchJobクラスを継承して、独自のバッチジョブクラスを作成します。この際、handleメソッドをオーバーライドして、バッチジョブで行いたい具体的な処理を記述します。

touch app/Batch/HogeJob.php
<?phpnamespace JoyPla\Batch;use framework\Batch\BatchJob;
class HogeJob extends BatchJob{    public function handle(): void    {        echo "バッチジョブが実行されました!";    }}

このようにしてJobファイルを作ります。 もちろん、handleのなかでSpiralDBクラスを利用することも可能です。

Jobを追加しましょう。#

batch.phpに追加します。

$batchScheduler->addJob((new HogeJob())->everyMinute());

スケジュールの設定#

次に、作成したバッチジョブのインスタンスを生成し、どのタイミングで実行するかのスケジュールを設定します。

設定は15分単位で指定が可能です。

毎回実行#

$job->everyMinute();

15分ごとに実行(毎回実行)#

$job->everyFifteenMinutes();

2時間ごとに実行 (2時間毎の00分に)#

$job->everyTwoHours();

3時間ごとに実行 (3時間毎の00分に)#

$job->everyThreeHours();

4時間ごとに実行 (4時間毎の00分に)#

$job->everyFourHours();

6時間ごとに実行 (6時間毎の00分に)#

$job->everySixHours();

毎日実行 (毎日00:00時に)#

$job->daily();

指定した時間に毎日実行#

$job->dailyAt('12:30');

1日に2回指定した時間に実行#

$job->twiceDaily('09:00', '18:00');

毎週実行 (毎週日曜日の00:00時に)#

$job->weekly();

カスタムプログラムに設置#

<?php require_once "{project_name}/routes/batch.php";

実行時間は毎時15分の実行に設定してください。